package com.yc.dygang;

import javax.servlet.*;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

    @WebListener
public class AppListener implements ServletContextListener, HttpSessionListener, HttpSessionAttributeListener {

    public AppListener() {
    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        /* 在初始化servlet上下文时（部署Web应用程序时）调用此方法 */
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("开始采集数据:" + System.currentTimeMillis());
                try {
                    Spider.capture();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }, 0, 1000 * 60 * 24);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        /* 当servlet上下文被取消部署或应用程序服务器关闭时，会调用此方法 */
    }

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        /* 会话已创建 */
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        /* 会话已销毁d. */
    }

    @Override
    public void attributeAdded(HttpSessionBindingEvent sbe) {
        /* 将属性添加到会话时调用此方法 */
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent sbe) {
        /* 当从会话中删除属性时，会调用此方法。 */
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent sbe) {
        /* 当会话中的属性被替换时，会调用此方法。 */
    }
}